﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Negocio.Eventos;
using System.Drawing;
using Entidades.Eventos;


public partial class Eventos_frmCatalogoEvento : System.Web.UI.Page
{
    List<EveEvento> listaEventos = new List<EveEvento>();

    protected void Page_Load(object sender, EventArgs e)
    {
            btnBuscarE.ServerClick += new EventHandler(btnBuscarE_ServerClick);
            btnSeleccionar.ServerClick += new EventHandler(btnSeleccionar_ServerClick);
            btnCancelar.ServerClick += new EventHandler(btnCancelar_ServerClick);

            if (!Page.IsPostBack)
            {
                List<EveTipoEvento> eveTipoEvento = EveTipoEventoBLL.listar();
                List<ListItem> listListItem = eveTipoEvento.Select(ev => new ListItem { Value = ev.idTipoEvento.ToString(), Text = ev.nombre }).ToList();

                selectTipoEventos.Items.Clear();
                foreach (ListItem listItem in listListItem)
                    selectTipoEventos.Items.Add(listItem);
            }
    }

    void btnCancelar_ServerClick(object sender, EventArgs e)
    {
        Response.Redirect("frmRegistrarReserva.aspx");
    }

   void btnSeleccionar_ServerClick(object sender, EventArgs e)
    {
        int idEventoSeleccionado = 0;

        foreach (string key in Request.Form)
        {

            if (key == "for_selecting")
            {
                idEventoSeleccionado = Convert.ToInt32(Request.Form[key]);
                break;
            }
        }

        List<EveEvento> listaEventosTEMP = (List<EveEvento>)Session["listaEventos"];
        Session["eventoSeleccionado"] = listaEventosTEMP.Where(ev => ev.idEvento == idEventoSeleccionado).FirstOrDefault(); 
        Response.Redirect("frmRegistrarReserva.aspx");
    }

    void btnBuscarE_ServerClick(object sender, EventArgs e)
    {
       String nomEvento = nombreEvento.Value;
       int idTipoEvento = Convert.ToInt32(selectTipoEventos.Value);

       listaEventos = EveEventoBLL.buscarPorTipoNombre(idTipoEvento, nomEvento);

       Session["listaEventos"] = listaEventos;

       if (listaEventos != null)
       {
           if (listaEventos.Count > 0)
           {
               tdResultadoEventos.Visible = true;
               tdSinResultados.Visible = false;
               foreach (EveEvento evento in listaEventos)
               {
                   TableRow tr1 = new TableRow();

                   TableCell tc1 = new TableCell(); //Seleccion
                   tc1.ID = "rbt" + evento.idEvento;
                   tc1.HorizontalAlign = HorizontalAlign.Center;
                   RadioButton radioButton = new RadioButton();
                   radioButton.GroupName = "for_selecting";
                   radioButton.ID = evento.idEvento.ToString();
                   radioButton.Attributes.Add("runat", "server");
                   tc1.Controls.Add(radioButton);

                   TableCell tc2 = new TableCell(); //Evento
                   Label lbl2 = new Label();
                   lbl2.Text = evento.nombre;
                   tc2.Controls.Add(lbl2);

                   TableCell tc3 = new TableCell(); //Tipo Evento
                   Label lbl3 = new Label();
                   lbl3.Text = evento.Eve_Tipo_evento.nombre;
                   tc3.Controls.Add(lbl3);

                   TableCell tc4 = new TableCell(); //Ver Detalle
                   Label lbl4 = new Label();

                   String tmp = String.Empty;
                   foreach (EveProductoEvento eveProductoEvento in evento.Eve_Producto_evento.ToList())
                   {
                       tmp = tmp + eveProductoEvento.Eve_Producto.nombre + "<br>";
                   }
                   lbl4.Text = tmp;
                   tc4.Controls.Add(lbl4);
                   tr1.Cells.Add(tc1);
                   tr1.Cells.Add(tc2);
                   tr1.Cells.Add(tc3);
                   tr1.Cells.Add(tc4);
                   tablaCatalogos.Rows.Add(tr1);
               }
           }
           else
           {
               Page.ClientScript.RegisterStartupScript(GetType(), "msgbox", "alert('No se encontraron registros para la búsqueda realizada.');", true);
           }
       }
       else
       {
           Page.ClientScript.RegisterStartupScript(GetType(), "msgbox", "alert('No se encontraron registros para la búsqueda realizada.');", true); 
       }
    }

    void radioButton_CheckedChanged(object sender, EventArgs e)
    {
        throw new NotImplementedException();
    }
    
   
}